package command

type OptionType int

const (
	IntOption OptionType = iota + 1
	StrOption
	BoolOption
)

type Commander interface {
	Description() string
	Run(opts []*Option, args []string)
	Arguments() []Argument
	Options() []*Option
}

type Argument struct {
	Name        string
	Description string
	Required    bool
	IsArray     bool
}

type Option struct {
	ShortName    string
	Name         string
	Description  string
	OptType      OptionType
	IntValue     int
	StrValue     string
	BoolValue    bool
	DefaultValue interface{}
}
